#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int main()
{
    // 循环计数器，用于控制生成随机数的次数（共10次）
    int i;
    // 临时存储每次生成的随机数
    int j;

    // 初始化随机数生成器（rand()函数）的“种子”（seed），确保每次程序运行时生成的随机数序列不同
    /*
    time(NULL)：获取当前系统时间（返回自1970年1月1日以来的秒数，类型为time_t），确保每次运行时时间值不同。

    (unsigned)：将时间值强制转换为无符号整数，符合srand()函数对参数类型的要求。

    为什么需要种子？：rand()函数本质是生成伪随机数（基于固定算法的序列），若不初始化种子，
    每次运行会生成相同的随机数序列。通过time(NULL)动态设置种子，可保证每次运行的随机数序列不同。

    srand()：通过当前时间初始化随机数种子，避免每次运行生成相同的随机数序列
    */
    srand((unsigned)time(NULL));

    for (i = 0; i < 10; i++)
    {
        // rand()函数：返回一个范围在[0, RAND_MAX]（通常为0~32767）的伪随机整数
        // rand()：生成伪随机整数，需配合srand()使用才有“随机性”
        j = rand();
        cout << "rand: " << j << endl;
    }
}